package com.geek.javase.ch13.videodemo.serial;

import java.io.FileInputStream;
import java.io.IOException;
import java.io.ObjectInputStream;

/**
 * 反序列化
 * 反之，该字节序列还可以从文件中读取回来，重构对象，对它进行反序列化。对象的数据、对象的类型和对象中存储的数据信息，都可以用来在内存中创建对象。
 *
 * 特点：
 * 将 “介质” 中的字节序列读至内存中，重构成对象
 *
 * ObjectInputStream
 * 1.构造方法 public ObjectInputStream(InputStream in)
 * 2.读      public final Object readObject()
 *
 */
public class SerializableDemo2 {

    public static void main(String[] args) {
        try ( ObjectInputStream ois = new ObjectInputStream(new FileInputStream("user.txt")) ){
            User o = (User)ois.readObject();
            System.out.println("user = "+o);
            System.out.println("反序列化完毕~");
        } catch (IOException | ClassNotFoundException e) {
            throw new RuntimeException(e);
        }
    }

}
